package br.com.monitorimoveis.batch.parser;

import java.util.ArrayList;
import java.util.List;

import br.com.monitorimoveis.comum.entidade.Cidade;
import br.com.monitorimoveis.comum.entidade.Estado;

/**
 * Gera URLs de Pesquisa para o WImoveis.
 * Cada 
 * @author Bruno
 *
 */
public class GeradorURLsPesquisaWImoveis implements IGeradorURLsPesquisa {

	private static final String baseURL = "http://www.wimoveis.com.br";

	private List<String> urls = null;
	private int index = 0;

	public GeradorURLsPesquisaWImoveis(Estado estado) {
		urls = new ArrayList<String>();
		
		//TODO trocar por gerarURLs quando for rodar em produção...
		//gerarURLsTeste();
		gerarURLs(estado);
	}
	
	private void gerarURLsTeste() {
		 urls.add(baseURL
		 +
		 "/df/guara/guara-i/apartamento/venda/?busca=lista&quarto=todos&o=F&planta=1&pronto=1&pg=");
	}

	private void gerarURLs(Estado estado) {
		
	//	Estado DF = Estado.montarDF();
		
	//	String urlPrefix = baseURL + "/" + DF.getSigla() + "/";
		
		String urlPrefix = baseURL + "/" + estado.getSigla() + "/";
		String urlSuffix = "?busca=galeria&quarto=todos&o=F&planta=1&pronto=1&pg=";

		
	//	List<Cidade> cidades = DF.getCidades();

		List<Cidade> cidades = estado.getCidades();
		
		String novoURL = "";
		for (Cidade cidade : cidades) {
			addUrlsTiposImoveis(urlPrefix, urlSuffix, cidade);
		}

	}

	private void addUrlsTiposImoveis(String urlPrefix, String urlSuffix,
			Cidade cidade) {

		String[] tiposImoveis = new String[] { "apart-hotel-flat",
				"apartamento", "casa", "casa-condominio", "chacara",
				"comercio", "imovel-comercial", "kitinete",
				"kitinete-mobiliada", "loft", "loja", "lote-condominio",
				"lote-terreno", "sala-comercial", "vaga" };

		String novoURL;
		
		for (String tipo : tiposImoveis) {
			novoURL = urlPrefix + cidade.getNomeExibicao() + "/" + tipo + "/" + "venda" + "/"
					+ urlSuffix;
			urls.add(novoURL);
			
			novoURL = urlPrefix + cidade.getNomeExibicao() + "/" + tipo + "/" + "aluguel" + "/"
					+ urlSuffix;
			urls.add(novoURL);
			System.out.println("Novo URL: " + novoURL);

		}
	}

	public boolean temMaisURLs() {
		if (urls.size() == 0)
			return false;
		if (index == urls.size())
			return false;
		return true;
	}

	public String proximaURL() {
		String result = urls.get(index);
		index++;

		return result;
	}

	private static final long serialVersionUID = -302188881463305513L;

}
